1759B - Lost Permutation - CodeForces Solution


math *800

Please click on ads to support us..

Python Code:

for i in range(int(input())):
    m,s=map(int,input().split())
    

    l=list(map(int,input().split()))
    a=sum(l)
    value=a+s
        i=1

    while True:
        if i not in l:
            l.append(i)
                        a=a+i
                    if a>=value:
            break
        i=i+1
    if a==value and value==(len(l)*(len(l)+1)/2) :
                                print("YES")
    else:
        print("NO")

C++ Code:

#include "bits/stdc++.h"
using namespace std;

#ifdef LOCAL
  #include "../algorithms/misc/debug.h"
#else
  #define debug(...) 42
#endif

using ll = long long;
using db = long double;
 
using vi = vector<int>;
using vl = vector<ll>;
using vd = vector<db>;

using pi = pair<int, int>;
using pl = pair<ll, ll>;
 
// pairs
#define mp make_pair
#define f first
#define s second
 
// vectors
#define sz(v) (int)(v.size())
#define all(v) v.begin(), v.end()
#define rall(v) v.rbegin(), v.rend()
#define pb push_back

int32_t main() {
  ios::sync_with_stdio(false);
  cin.tie(nullptr);

  int t; cin >> t;

  while (t--) {
    int m, sum; cin >> m >> sum;

    map<int, bool> marked;
    int mVal1 = 0, mVal2 = 0;
    for (int i = 0; i < m; i++) {
      int x; cin >> x;
      marked[x] = true;
      mVal1 = max(mVal1, x);
    }

    bool ok = true;
    for (int i = 1; i <= 100 && sum; i++) {
      if (!marked[i]) {
        if (sum - i >= 0) {
          sum -= i; mVal2 = i;
          marked[i] = true;
        } else {
          ok = false;
          break;
        }
      }
    }

    for (int i = 1; i <= max(mVal1, mVal2); i++) {
      ok &= marked[i];
    }

    cout << (ok ? "yes\n" : "no\n");
  }

}


Comments

Submit
0 Comments
More Questions

535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One
131A - cAPS lOCK
1635A - Min Or Sum
474A - Keyboard
1343A - Candies
1343C - Alternating Subsequence
1325A - EhAb AnD gCd